04. Mobile Development Fact Sheet
Mobile Development Fact Sheet
Mobile Development Fact Sheet
Here are some quick facts that can help you evaluate whether Mobile Programming is the right path for you!
What are the different types of mobile programmers?
- The two main platforms that mobile programmers work on are iOS and Android. There are other mobile and wearable platforms, but as far as number of devices owned by consumers goes, these are the two main ones.
What are essential mobile programming skills?
- Mobile programmers need a solid understanding of object-oriented programming and networking (such as working with online APIs).
- In the iOS world, iOS programmers need an understanding of a programming paradigm called Model View Controller (MVC).
What are the differences and similarities of mobile programming languages?
- In iOS programming, there are only two languages available for making native apps: Swift and Objective C. The most used language for existing apps is Objective C. However, that is changing rapidly since Apple introduced Swift, a newer modern language, in the summer of 2014. Now all of Apple’s Worldwide Developers Conference (WWDC) presentations are done in Swift. At Udacity, our recommendation is to learn to program iOS apps in Swift, and if desired become familiar with Objective C later.
- For Android programming, Java is the official language used to develop Android apps. It is possible to develop Android apps with C and C++ using the Android Native Development Kit (NDK), but Google encourages Java for Android development. In addition, XML is used to develop the visual components of Android apps.
What are important concepts mobile programmers need to know:
- How to access and use data through networking- Mobile programmers often need to access or use data that does not reside on the mobile device. This may include fetching data from a server, Hypertext Transfer Protocol (HTTP), parsing JSON data, calling APIs methods and saving this data in local databases. In other words, networking! If you take a look at the top 10 apps at any time, chances are that each one of them has some sort of networking functionality, or depends entirely on an active network connection.
- Standards for Design Patterns- Phones, tablets, and wearables have become the vehicle for intuitive user experiences. Learning the design patterns taught in Apple and Google documentation is of high importance. If an app is confusing, chances are that the user will not give it the time you expect.
What kinds of tools do mobile programmers use?
- For iOS programming, the only integrated development environment (IDE) used for native apps is called Xcode, which is only available on Apple computers. It comes with an extremely fast simulator which simulates all iOS devices released in the last 4 or 5 years. It is also used for watchOS and tvOS devices as well. There are countless tools that are available in Xcode to simulate certain situations a user may experience, and to diagnose and monitor device performance.
- Android Studio is the official IDE for developing Android applications. It is available for Windows and Macs. The Android Studio has similar features, including performance monitoring tools, support for building Android Wear apps, and tools to catch version compatibility problems. In addition, there is built-in support for using the Google Cloud Platform and integration with Google Cloud Messaging.
How will I know if I'm ready for a path in Mobile programming?
If you've completed the previous lessons in this Nanodegree Program, you’ve learned how a graphical interface (HTML/CSS) connects with actual code (Python). Mobile development is similar as the graphical interface (XML) connects with the back end logic (written in Java for Android, Swift for iOS). While the coding language is new, the paradigms are the same. Like the Python programming language, Java and Swift also have functions, variables, data-types, loops, conditional statements, and classes.
INSTRUCTOR NOTE:
Here are some resources to learn more about mobile programming: